package com.yxw.live_vod_boot.service;

import com.yxw.live_vod_boot.dto.*;
import com.yxw.live_vod_boot.vo.LiveBannedUserVO;
import com.yxw.live_vod_boot.vo.ShopExtendVo;
import com.yxw.live_vod_boot.vo.ShopHomePageVO;
import com.yxw.live_vod_boot.vo.UploadSourceMaterialReviewVO;
import com.yxw.live_vod_facade.dto.ShopAddDTO;
import com.yxw.live_vod_facade.dto.ShopExtendAddDTO;
import com.yxw.yxnet_cd_center.common.dto.PageVO;
import com.yxw.yxnet_cd_center.common.utils.BaseResult;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @author liuxin
 * @create 2023-11-16 15:23:14
 * @description  店铺管理
 */
public interface ShopService {

    /**
     * 添加店铺
     * @param dto
     * @return
     */
    ShopExtendVo addShop(ShopAddDTO dto);

    /**
     * 添加店铺扩展信息
     * @param dto
     */
    void addShopExtend(ShopExtendAddDTO dto);

    /**
     * 修改店铺状态
     * @param shopId
     * @param status
     */
    void updateShopStatus(Long shopId, Integer status);

    /**
     * 店铺开通点播权限
     * @param dto
     * @return
     */
    ShopExtendVo permissionShop(PermissionShopDTO dto);

    /**
     * 点击视频开通权限,同时设置背景图与个性签名
     * @param shopBackground
     * @param homepageDTO
     */
//    void enableVideoPermissions(MultipartFile shopBackground, UploadHomepageDTO homepageDTO);

    /**
     * 上传背景图片与个性签名
     * @param backgroundFile
     * @param homepageDTO
     * @return
     */
    UploadSourceMaterialReviewVO uploadBackgroundPic(MultipartFile backgroundFile, UploadHomepageDTO homepageDTO);

    /**
     * 添加店铺主页审核信息
     * @param dto
     * @return
     */
    UploadSourceMaterialReviewVO addShopHomePageReview(ShopBackgroundReviewDTO dto);

    /**
     * 店铺主页审核处理
     * @param examineDTO
     * @return
     */
    BaseResult isShopHomepageReview(ReviewExamineDTO examineDTO);

    /**
     * 获取店铺主页审核详情
     * @param materialId
     * @return
     */
    UploadSourceMaterialReviewVO getShopHomePageReviewById(Long materialId);

    /**
     * 获取店铺主页审核列表
     * @param queryDTO
     * @return
     */
    PageVO<UploadSourceMaterialReviewVO> getShopHomePageReviewList(ShopHomepageReviewQueryDTO queryDTO);

    /**
     * 获取店铺主页信息
     * @param shopId
     * @return
     */
    ShopHomePageVO getShopHomepage(Long shopId);

    /**
     * 修改店铺主页信息
     * @param shopBackground
     * @param homepageDTO
     */
    void updateShopHomepage(MultipartFile shopBackground, UploadHomepageDTO homepageDTO);

    /**
     * 修改店铺头像
     * @param shopId
     * @param shopAvatar
     * @param shopName
     */
    void updateShopInformation(Long shopId,MultipartFile shopAvatar, String shopName);

    /**
     * 获取店铺列表
     * @param queryDTO
     * @return
     */
    PageVO<ShopHomePageVO> getShopList(ShopQueryDTO queryDTO);

    /**
     * 获取店铺列表
     * @return
     */
    List<ShopHomePageVO> getAll();

    /**
     * 根据店铺查询直播间中被拉黑用户列表
     * @param shopId
     * @return
     */
    List<LiveBannedUserVO> getBannedUserListByShop(Long shopId);

}
